本发明公开了一种渲染网页的方法、服务器和系统,所述方法包括:创建多个虚拟机,虚拟机中加载渲染引擎,在虚拟机中启动多个渲染进程;通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果存入结果队列。本发明适于计算机网络领域,能够解决对网页渲染处理速度慢,影响业务整体处理速度的问题。
1.一种渲染网页的方法,所述方法包括:创建多个虚拟机,虚拟机中加载渲染引擎,在虚拟机中启动多个渲染进程;通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果存入结果队列;所述加载的多种渲染引擎中至少包括:通用渲染引擎,所述通用渲染引擎为统计中支持度超过门限值的渲染引擎;所述根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染后,所述方法还包括:渲染进程在根据渲染任务调用渲染引擎进行网页渲染失败后,调用通用渲染引擎进行网页渲染;所述业务包括:网络爬虫业务和/或网站监控业务,所述渲染进程将渲染结果存入结果队列具体包括:渲染进程获取渲染后的网页的文档对象模型DOM结构数据,将所述DOM结构数据存入结果队列,以供业务在后续操作中使用所述DOM结构数据。
2.根据权利要求1所述的方法,其中,所述虚拟机中加载渲染引擎具体包括:在虚拟机中加载多种渲染引擎;所述根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染具体包括:当业务指定渲染引擎时,通过渲染进程解析出渲染任务中包含的渲染引擎信息,所述渲染引擎信息中记载用于执行所述渲染任务的渲染引擎;通过渲染进程调用渲染引擎信息中记载的渲染引擎进行网页渲染。
3.根据权利要求1所述的方法,其中,所述虚拟机中加载渲染引擎具体包括:在虚拟机中加载多种渲染引擎,所述多种渲染引擎中至少包括:高效渲染引擎;所述高效渲染引擎为统计中渲染网页的效率高于平均效率的渲染引擎;所述根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染具体包括:当业务没有指定渲染引擎时,通过渲染进程调用高效渲染引擎进行网页渲染。
4.根据权利要求1、2或3所述的方法,其中,所述任务队列中保存多种业务下发的渲染任务;所述渲染进程将渲染结果存入结果队列具体包括:渲染进程将渲染任务的渲染结果存入下发所述渲染任务的业务对应的结果队列,以供所述业务在后续操作中从该对应的结果队列中获取渲染结果。
5.一种渲染网页的服务器,所述服务器包括:多个加载有渲染引擎的虚拟机模块;虚拟机模块中包括多个渲染进程单元;渲染进程单元,用于通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果保存到结果队列;所述虚拟机模块中加载的多种渲染引擎中至少包括:通用渲染引擎,所述通用渲染引擎为统计中支持度超过门限值的渲染引擎;所述渲染进程单元还用于:通过渲染进程在根据渲染任务调用渲染引擎进行网页渲染失败后,调用通用渲染引擎进行网页渲染;所述业务包括:网络爬虫业务和/或网站监控业务,所述渲染进程单元具体用于:通过渲染进程获取渲染后的网页的文档对象模型DOM结构数据,将所述DOM结构数据存入结果队列,以供业务在后续操作中使用所述DOM结构数据。
6.根据权利要求5所述的服务器,其中,所述虚拟机模块中加载的渲染引擎为多种;所述渲染进程单元具体用于:当业务指定渲染引擎时,通过渲染进程解析出渲染任务中包含的渲染引擎信息,所述渲染引擎信息中记载用于执行所述渲染任务的渲染引擎;并调用渲染引擎信息中记载的渲染引擎进行网页渲染。
7.根据权利要求5所述的服务器,其中,所述虚拟机模块中加载的渲染引擎为多种,所述多种渲染引擎中至少包括:高效渲染引擎,所述高效渲染引擎为统计中渲染网页的效率高于平均效率的渲染引擎;所述渲染进程单元具体用于:当业务没有指定渲染引擎时,通过渲染进程调用高效渲染引擎进行网页渲染。
8.根据权利要求5、6或7所述的服务器,其中,所述任务队列中保存多种业务下发的渲染任务;所述渲染进程单元具体用于:通过渲染进程将渲染任务的渲染结果存入下发所述渲染任务的业务对应的结果队列,以供所述业务在后续操作中从该对应的结果队列中获取渲染结果。
9.一种渲染网页的系统,所述系统包括:如权利要求5至8任一所述的服务器,任务队列存储服务器,用于接收业务下发的渲染任务,将渲染任务存入任务队列中;结果队列存储服务器,用于保存存放渲染结果的结果队列。
技术领域本发明涉及计算机网络领域,具体涉及一种渲染网页的方法、服务器和系统。
背景技术现有技术中,渲染网页主要包括:创建矢量图及位图图形,调整网页色彩,制作按钮、导航条及动画,利用滤镜处理图像等处理。其中涉及多种处理,处理量较大。可是,对于一些业务,会有对大量网页进而渲染操作的需要;例如,网络爬虫业务中就需要对大量网页进行渲染操作。其中,网络爬虫(又被称为网页蜘蛛,网络机器人)是一种按照一定的规则自动的抓取万维网信息的程序或者脚本。在现有技术中,越来越多的网页页面采用了异步请求数据的方式,对于这类网页,通过直接下载无法获取网页的全部内容,会遗漏一些关键链接及信息,因此需要对网页进行渲染,从渲染结果中获得更加全面的网页信息。此外,在网页监控业务中,同样为了获得网页的全面信息,也需要对大量的网页进行渲染。对大量网页的渲染处理要求设备具有极高的处理能力,现有设备通常无法满足这种处理能力的要求,造成处理速度较慢,使得渲染网页处理成为整个业务完成的瓶颈,进而影响整个业务的处理速度。
发明内容鉴于上述问题,本发明提供一种渲染网页的方法、服务器和系统,以解决对网页渲染处理速度慢,影响业务整体处理速度的问题。依据本发明的一个方面,提供了一种渲染网页的方法,所述方法包括:创建多个虚拟机,虚拟机中加载渲染引擎,在虚拟机中启动多个渲染进程;通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果存入结果队列。其中,所述虚拟机中加载渲染引擎具体包括:在虚拟机中加载多种渲染引擎;所述根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染具体包括:当业务指定渲染引擎时,通过渲染进程解析出渲染任务中包含的渲染引擎信息,所述渲染引擎信息中记载用于执行所述渲染任务的渲染引擎;通过渲染进程调用渲染引擎信息中记载的渲染引擎进行网页渲染。其中,所述虚拟机中加载渲染引擎具体包括:在虚拟机中加载多种渲染引擎,所述多种渲染引擎中至少包括:高效渲染引擎;所述高效渲染引擎为统计中渲染网页的效率高于平均效率的渲染引擎;所述根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染具体包括:当业务没有指定渲染引擎时,通过渲染进程调用高效渲染引擎进行网页渲染。其中,所述加载的多种渲染引擎中至少包括:通用渲染引擎,所述通用渲染引擎为统计中支持度超过门限值的渲染引擎;所述根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染后,所述方法还包括:渲染进程在根据渲染任务调用渲染引擎进行网页渲染失败后,调用通用渲染引擎进行网页渲染。其中,所述任务队列中保存多种业务下发的渲染任务;所述渲染进程将渲染结果存入结果队列具体包括:渲染进程将渲染任务的渲染结果存入下发所述渲染任务的业务对应的结果队列,以供所述业务在后续操作中从该对应的结果队列中获取渲染结果。其中,所述业务包括:网络爬虫业务和/或网站监控业务,所述渲染进程将渲染结果存入结果队列具体包括:渲染进程获取渲染后的网页的文档对象模型DOM结构数据,将所述DOM结构数据存入结果队列,以供业务在后续操作中使用所述DOM结构数据。依据本发明的另一个方面,提供了一种渲染网页的服务器,所述服务器包括:多个加载有渲染引擎的虚拟机模块;虚拟机模块中包括多个渲染进程单元;渲染进程单元,用于通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果保存到结果队列。其中,所述虚拟机模块中加载的渲染引擎为多种;所述渲染进程单元具体用于:当业务指定渲染引擎时,通过渲染进程解析出渲染任务中包含的渲染引擎信息,所述渲染引擎信息中记载用于执行所述渲染任务的渲染引擎;并调用渲染引擎信息中记载的渲染引擎进行网页渲染。其中,所述虚拟机模块中加载的渲染引擎为多种;所述多种渲染引擎中至少包括:高效渲染引擎;所述高效渲染引擎为统计中渲染网页的效率高于平均效率的渲染引擎;所述渲染进程单元具体用于:当业务没有指定渲染引擎时,通过渲染进程调用高效渲染引擎进行网页渲染。其中,所述虚拟机模块中加载的多种渲染引擎中至少包括:通用渲染引擎,所述通用渲染引擎为统计中支持度超过门限值的渲染引擎;所述渲染进程单元还用于:通过渲染进程在根据渲染任务调用渲染引擎进行网页渲染失败后,调用通用渲染引擎进行网页渲染。其中,所述任务队列中保存多种业务下发的渲染任务;所述渲染进程单元具体用于:通过渲染进程将渲染任务的渲染结果存入下发所述渲染任务的业务对应的结果队列,以供所述业务在后续操作中从该对应的结果队列中获取渲染结果。其中,所述业务包括:网络爬虫业务和/或网站监控业务,所述渲染进程单元具体用于:通过渲染进程获取渲染后的网页的文档对象模型DOM结构数据,将所述DOM结构数据存入结果队列,以供业务在后续操作中使用所述DOM结构数据。依据本发明的另一个方面,提供了一种渲染网页的系统,所述系统包括:如前所述的服务器,任务队列存储服务器,用于接收业务下发的渲染任务,将渲染任务存入任务队列中;结果队列存储服务器,用于保存存放渲染结果的结果队列。根据本发明提供的渲染网页的技术方案,其中,创建多个虚拟机,虚拟机中加载渲染引擎,在虚拟机中启动多个渲染进程;通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果存入结果队列。通过创建多个虚拟机可以对渲染网页进行并行处理,提高了渲染网页的处理速度。通过调用渲染引擎进行渲染,能够满足更多渲染属性,使得渲染结果中包含的信息更加全面,为业务完成提供更好的基础。由此可见,该技术方案解决了对大量网页进行渲染处理速度慢的问题,取得了提高对大量网页进行渲染的处理速度,为业务完成提供更好基础的有益效果。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本发明一个实施例的渲染网页的方法的流程图;图2示出了根据本发明一个实施例中应用渲染网页的方法的系统框架示意图;图3示出了根据本发明一个实施例的渲染网页的方法中渲染进程进行处理的流程图;图4示出了根据本发明一个实施例的渲染网页的服务器的结构图;以及图5示出了根据本发明一个实施例的渲染网页的系统的结构图。
具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。参见图1,示出了根据本发明一个实施例的渲染网页的方法的流程图。所述方法包括如下步骤。步骤S100,创建多个虚拟机,虚拟机中加载渲染引擎,在虚拟机中启动多个渲染进程。步骤S100的一种具体实现方式可以为:在一个物理机器上创建多个虚拟机,在每个虚拟机中加载渲染引擎,并在每个虚拟机中启动多个渲染进程。步骤S200,通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果存入结果队列。在本实施例中,通过创建多个虚拟机可以对渲染网页进行并行处理,提高了渲染网页的处理速度。通过调用渲染引擎进行渲染,能够满足更多渲染属性,使得渲染结果中包含的信息更加全面,为业务完成提供更好的基础。由此可见,解决了对大量网页进行渲染处理速度慢的问题,取得了提高对大量网页进行渲染的处理速度,为业务完成提供更好基础的有益效果。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。在本实施例中,虚拟机中加载多种渲染引擎。所述通过渲染进程根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染具体包括:当业务指定渲染引擎时,通过渲染进程解析出渲染任务中包含的渲染引擎信息,所述渲染引擎信息中记载用于执行所述渲染任务的渲染引擎;通过渲染进程调用渲染引擎信息中记载的渲染引擎进行网页渲染。本实施例中,通过使用多种渲染引擎,并且通过业务在下发渲染任务时指定渲染引擎,能够针对各种网页使用处理该种网页的优选渲染引擎,进一步提高渲染网页的处理速度和处理效果。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。在本实施例中,虚拟机中加载多种渲染引擎;多种渲染引擎中至少包括:高效渲染引擎。所述高效渲染引擎为统计中渲染网页的效率高于平均效率的渲染引擎。所述通过渲染进程根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染具体包括:当业务没有指定渲染引擎时,通过渲染进程调用高效渲染引擎进行网页渲染。具体地,在统计时,针对同一网页使用目前常用的多种渲染引擎进行网页渲染,得到每种渲染引擎渲染该网页所用的时间,进而得出渲染该网页的平均时间。由此可以得出渲染网页所用时间小于平均时间的渲染引擎为高效渲染引擎,即通过渲染所用时间来衡量渲染效率。本实施例中,通过使用多种渲染引擎,并且通过渲染进程依据渲染任务选择渲染效率高的渲染引擎,进一步提高了渲染网页的处理速度和处理效果;并且实现了渲染引擎选择的自动化,避免了配置的繁琐操作。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。所述加载的多种渲染引擎中至少包括:通用渲染引擎,所述通用渲染引擎为统计中支持度超过门限值的渲染引擎,例如IE渲染引擎。所述根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染后,所述方法还包括:通过渲染进程在根据渲染任务调用渲染引擎进行网页渲染失败后,调用通用渲染引擎进行网页渲染。例如,通过渲染进程检查渲染结果,发现网页渲染失败,则调用IE渲染引擎重新进行网页渲染。在本实施例中,当应用选择的渲染引擎进行渲染失败时,调用通用渲染引擎,能够增加网页被渲染成功的概率,进而为业务提供更好的完成基础。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。所述任务队列中保存多种业务下发的渲染任务。所述通过渲染进程将渲染结果存入结果队列具体包括:通过渲染进程将渲染任务的渲染结果存入下发所述渲染任务的业务对应的结果队列,以供所述业务在后续操作中从该对应的结果队列中获取渲染结果。在本实施例中,包括多个结果队列,每种业务与一个结果队列对应。其中,将渲染结果存入下发所述渲染任务的业务对应的结果队列,便于不同种类的业务获取各自的结果。在本实施例中,能够为多种业务提供渲染网页的服务,当需要进行网页渲染的业务种类增加时,仅需将该增加的业务的任务保存到任务队列便可为该业务提供渲染网页的服务,因此提高了业务种类的可扩展性,便于增加业务种类。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。本实施例中,所述业务包括:网络爬虫业务和/或网站监控业务,所述通过渲染进程将渲染结果存入结果队列具体包括:通过渲染进程获取渲染后的网页的DOM(文档对象模型,docu
mentxa0Objectxa0Model)结构数据,将所述DOM结构数据存入结果队列,以供业务在后续操作中使用该DOM结构数据。其中,DOM结构数据中包含网页的整体结构的信息,网络爬虫业务和网站监控业务从DOM结构数据中获得网页的整体结构,供进行后续操作时使用。现有技术中,渲染网页的结果多表现为渲染后生成的图片,但是该图片对网络爬虫、网站监控等业务处理意义较小,网络爬虫、网站监控等业务注重获取网页的结构信息。本实施例中,将DOM结构数据作为结果存入结果队列供业务使用,方便了网络爬虫、网站监控等业务的后续处理。在一实施例中,以本发明中方法在网络爬虫业务中应用为例对本发明渲染网页的方法进行说明。网络爬虫系统中的页面抓取器对于无需渲染的网页直接下载,对于需要渲染的网页采用本实施中方法进行渲染。参见图2,示出了根据本发明一个实施例中应用渲染网页的方法的系统框架示意图。其中,通过XEN(虚拟机监视器)创建n个虚拟机,每个虚拟机中加载3中渲染引擎,在每个虚拟机中启动3至5个渲染进程。虚拟机中加载的渲染引擎包括:IE渲染引擎、Gecko(火狐中使用的浏览器内核)渲染引擎、和Webkit(一种开源的浏览器内核)渲染引擎。IE渲染引擎,基于屏幕读取技术读取IE浏览器的渲染结果。具体操作为:打开IE浏览器,并指定打开待渲染的页面;在渲染完毕后,采用屏幕读取技术,对IE渲染的页面进行遍历,读取Web页面中的DOM结构;输出DOM。Webkit渲染引擎,基于对Webkit源码修改,修改后的Webkit输入为需要渲染的URL,输出是渲染结果的DOM树。具体操作为:Webkit渲染完成后,产生一系列的相应事件,对源码中这些相应事件的回调进行重载,输出最终的DOM结构。Gecko渲染引擎,基于Gecko内核的浏览器插件,实现一个浏览器插件的应用,该插件实现输出渲染的DOM结构。三种渲染引擎比较,IE渲染引擎的支持度最高,其采用屏幕读取技术,准确度在三种渲染引擎中较高;但是渲染效率比Webkit渲染引擎和Gecko渲染引擎差一些,Webkit渲染引擎和Gecko渲染引擎的效率低大约40%。Webkit渲染引擎和Gecko渲染引擎,在准确度和渲染效率上相近似;两者的渲染效率较IE渲染引擎更高。如果注重渲染效率,则优选Webkit渲染引擎或者Gecko渲染引擎;如果注重准确度,则优选IE渲染引擎。例如,在业务指定渲染引擎时,要求准确度高于95%的网站监控业务或者网络爬虫业务可以选择指定IE渲染引擎,对于要求的准确度不高于95%的网站监控业务或者网络爬虫业务可以选择指定Webkit渲染引擎或Gecko渲染引擎。例如,在业务没有指定渲染引擎时,可以,以IE渲染引擎为通用渲染引擎,以Webkit渲染引擎或Gecko渲染引擎为高效渲染引擎。此外,如图2所示,本实施例中采用统一的任务队列保存任务。该任务队列为gearman(可进行并行分发的对外接口)队列,来实现并行分发。在本实施例中,对网络爬虫业务应用网页渲染,其中涉及一个业务,因此采用一个结果队列,该结果队列为gearman队列。在存在多种业务的情况下,可以使用多个结果队列,每种业务对应一个结果队列。本实施例中,业务下发的保存在任务队列中的任务为XML格式,任务内容均写在规定的XML字段当中,比如:<url></url>字段中的数据是需要渲染的网页地址,<engine></engine>字段中的数据是任务指定的渲染引擎等。在存在多种业务时,任务内容还包括:渲染完成后的结果投递地址,即业务对应的结果队列,以便业务的下游操作获取结果。参见图3,示出了根据本发明一个实施例的渲染网页的方法中渲染进程进行处理的流程图。步骤S310,通过渲染进程从任务队列中获取渲染任务,解析出业务在渲染任务中指定的渲染引擎和待渲染的网页地址。步骤S320,通过渲染进程调用指定的渲染引擎按网页地址渲染待渲染的网页。步骤S330,通过渲染进程获取渲染后的网页的文档对象模型DOM结构数据,将所述DOM结构数据存入结果队列。本实施仅为本发明中方法在网络爬虫业务中应用中的一个示例性说明,本发明中方法的具体实现不限于此,本发明中方法可以用于需要进行网页渲染的任何业务中。参见图4,示出了根据本发明一个实施例的渲染网页的服务器的结构图。所述服务器为虚拟机服务器200,包括:多个加载有渲染引擎的虚拟机模块210。虚拟机模块210中包括多个渲染进程单元212。渲染进程单元212,用于通过渲染进程从保存业务下发的渲染任务的任务队列中获取渲染任务,根据渲染任务调用虚拟机中加载的渲染引擎进行网页渲染,将渲染结果保存到结果队列。在本实施例中,通过在服务器中包含多个虚拟机模块210,可以对渲染网页进行并行处理,提高了渲染网页的处理速度。通过渲染进程单元212调用渲染引擎进行渲染,能够满足更多渲染属性,使得渲染结果中包含的信息更加全面,为业务完成提供更好的基础。由此可见,解决了对大量网页进行渲染处理速度慢的问题,取得了提高对大量网页进行渲染的处理速度,为业务完成提供更好基础的有益效果。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。虚拟机模块210中加载的渲染引擎为多种。渲染进程单元212具体用于:业务指定渲染引擎时,通过渲染进程解析出渲染任务中包含的渲染引擎信息,所述渲染引擎信息中记载用于执行所述渲染任务的渲染引擎;并调用渲染引擎信息中记载的渲染引擎进行网页渲染。本实施例中,通过加载多种渲染引擎,并且通过业务在下发渲染任务时指定渲染引擎,能够针对各种网页使用处理该种网页的优选渲染引擎,进一步提高渲染网页的处理速度和处理效果。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。虚拟机模块210中加载的渲染引擎为多种。所述多种渲染引擎中至少包括:高效渲染引擎;所述高效渲染引擎为统计中渲染网页的效率高于平均效率的渲染引擎。渲染进程单元212具体用于:当业务没有指定渲染引擎时,通过渲染进程调用高效渲染引擎进行网页渲染。具体地,在统计时,针对同一网页使用目前常用的多种渲染引擎进行网页渲染,得到每种渲染引擎渲染该网页所用的时间,进而得出渲染该网页的平均时间。由此可以得出渲染网页所用时间小于平均时间的渲染引擎为高效渲染引擎,即通过渲染所用时间来衡量渲染效率。本实施例中,通过加载多种渲染引擎,并且渲染进程单元212依据渲染任务选择渲染效率高的渲染引擎,进一步提高了渲染网页的处理速度和处理效果;并且实现了渲染引擎选择的自动化,避免了配置的繁琐操作。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。虚拟机模块210中加载的多种渲染引擎中至少包括:通用渲染引擎。通用渲染引擎为统计中支持度超过门限值的渲染引擎。渲染进程单元212还用于:通过渲染进程在根据渲染任务调用渲染引擎进行网页渲染失败后,调用通用渲染引擎进行网页渲染。在本实施例中,当应用选择的渲染引擎进行渲染失败时,渲染进程单元212调用通用渲染引擎,能够增加网页被渲染成功的概率,进而为业务提供更好的完成基础。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。任务队列中保存多种业务下发的渲染任务。渲染进程单元212具体用于:通过渲染进程将渲染任务的渲染结果存入下发所述渲染任务的业务对应的结果队列,以供所述业务在后续操作中从该对应的结果队列中获取渲染结果。在本实施例中,每种业务与一个结果队列对应。其中,将渲染结果存入下发所述渲染任务的业务对应的结果队列,便于不同种类的业务获取各自的结果。在本实施例中,能够为多种业务提供渲染网页的服务,当需要进行网页渲染的业务种类增加时,仅需将该增加的业务的任务保存到任务队列虚拟机服务器200便可为该业务提供渲染网页的服务,因此提高了业务种类的可扩展性,便于增加业务种类。在一实施例中,除下述技术特征外,其他技术特征与其他实施例相同。业务包括:网络爬虫业务和/或网站监控业务。渲染进程单元212具体用于:通过渲染进程获取渲染后的网页的文档对象模型DOM结构数据,将所述DOM结构数据存入结果队列,以供业务在后续操作中使用所述DOM结构数据。现有技术中,渲染网页的结果多表现为渲染后生成的图片,但是该图片对网络爬虫、网站监控等业务处理意义较小,网络爬虫、网站监控等业务注重获取网页的结构信息。本实施例中,渲染进程单元212将DOM结构数据作为结果存入结果队列供业务使用,方便了网络爬虫、网站监控等业务的后续处理。参见图5,示出了根据本发明一个实施例的渲染网页的系统的结构图。所述系统包括:如上述实施例中任一所述的虚拟机服务器200,以及任务队列存储服务器100和结果队列存储服务器300。任务队列存储服务器100,用于接收业务下发的渲染任务,将渲染任务存入任务队列中。结果队列存储服务器300,用于保存存放渲染结果的结果队列。该系统包括上述实施例中虚拟机服务器200,因此具有上述实施例的有益效果。此外,本实施例中,任务队列和结果队列都可以为gearman队列,从而实现并行收发,进一步提高系统的处理能力。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。